Skip to content

Add Nevada Child Care and Development Program (CCDP)#8665

Draft
hua7450 wants to merge 5 commits into
PolicyEngine:mainfrom
hua7450:nv-ccap
Draft

Add Nevada Child Care and Development Program (CCDP)#8665
hua7450 wants to merge 5 commits into
PolicyEngine:mainfrom
hua7450:nv-ccap

Conversation

@hua7450

@hua7450 hua7450 commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

Implements Nevada's Child Care and Development Program (CCDP) — the DWSS child care subsidy funded through the federal Child Care and Development Fund (CCDF). The subsidy pays a provider-day rate (by region, provider type, and child age) up to the state maximum, less a flat income-tier family copay, capped at actual childcare expenses. Eligibility uses a two-tier State Median Income (SMI) test, Nevada residency, child citizenship, a $1M asset limit, and a qualifying-activity (Purpose of Care) requirement.

Closes #8664.

Regulatory Authority

  • CC PT 06-25 Annual Income Changes (eff. Oct 1, 2025) — current income chart and flat copay tiers. PDF (3 pages; intake chart p.2, renewal chart p.3)
  • FFY 2025-2027 CCDF State Plan (ACF-118) — $1M asset limit, two-tier SMI eligibility, per-day base-rate table. PDF (296 pages; base-rate table file pp. 54-55)
  • Child Care Policy Manual (July 1, 2024, MTL 01/24) — activity/Purpose of Care categories, residency, child citizenship, age limits, income deductions, copay waivers. PDF (156 pages)
  • 2022 Child Care Market Rate Survey (eff. Apr 1, 2022) — 75th-percentile provider rates by region, provider type, and age, the survey basis for the State Plan base rates. PDF (92 pages)

Source-precedence caveat: The July 2024 Policy Manual's copay (MS 170/180) and income-eligibility sections are outdated — they still describe the pre-October-2024 sliding-scale copay (0-7% of income) and a single 85% SMI eligibility test. The Oct 2024 flat-copay change documented in CC PT 06-25 and the two-tier SMI eligibility in the FFY 2025-2027 CCDF State Plan are authoritative for the current flat copay and the 41%/49% SMI tiers. The Policy Manual is used only for rules that were not superseded.

Eligibility

Requirement Source How Modeled
Child under age 13 Manual MS 210 nv_ccdp_eligible_child: age < child_age_limit (13)
Special-needs child under age 19 Manual MS 211 nv_ccdp_eligible_child: where(has_developmental_delay, age < 19, age < 13)
Two-tier SMI income test CCDF State Plan + CC PT 06-25 nv_ccdp_income_eligible: new applicants ≤41% SMI (smi_intake), enrolled families ≤49% SMI (smi_renewal), keyed off nv_ccdp_enrolled
Nevada residency Manual MS 218 defined_for = StateCode.NV on the eligibility and output variables
Child U.S. citizen or eligible non-citizen (parent citizenship not required) Manual MS 214 nv_ccdp_eligible_child reuses federal is_ccdf_immigration_eligible_child
$1,000,000 family asset limit CCDF State Plan; 45 CFR 98.20 nv_ccdp_eligible reuses federal is_ccdf_asset_eligible (gov.hhs.ccdf.asset_limit)
Qualifying activity (Purpose of Care 410-470) Manual MS 400 series nv_ccdp_activity_eligible: meets_ccdf_activity_test | is_tanf_enrolled | is_homeless (existing status hooks; no new POC enum input)

Income & SMI tiers

Nevada uses State Median Income, not the federal poverty line. nv_ccdp_smi returns monthly 100% SMI via the federal smi() helper, pinned to the October-1 chart effective date (the chart updates annually on Oct 1). nv_ccdp_income_eligible then applies the tier ratio to monthly SMI:

  • New applicants (intake): countable income ≤ 41% SMI (income/smi_intake.yaml).
  • Enrolled families (renewal/redetermination): countable income ≤ 49% SMI (income/smi_renewal.yaml). This is the renewal ceiling and matches the top of the published copay scale exactly.

The federal CCDF rules also define an 85% SMI mid-certification-period protection (45 CFR 98.21(a)(1)(ii)): a state may not terminate a family mid-certification until income exceeds 85% SMI. PolicyEngine does not track certification periods at the moment, so this mid-period protection is not enforced. The operative enrolled income ceiling in the model is the 49% renewal tier; the 85% protection is documented as a limitation in nv_ccdp_income_eligible, not modeled.

Benefit Calculation

subsidy = max(min(provider charge, state max monthly rate) − flat family copay, 0)
          capped at actual childcare expenses
  • State max monthly rate = per-day rate × billed days, where the per-day rate comes from a base-rate table keyed by 2-region (Clark vs. rest-of-state) × provider type (center / family child care) × age group (infant / toddler / preschool / school-age). nv_ccdp_provider_rate looks up rates/center.yaml or rates/fcc.yaml; nv_ccdp_region derives the region from county; nv_ccdp_age_group derives the age band from age in months.
  • Flat family copay (nv_ccdp_copay, keyed by % SMI): $0 (≤32.99% SMI), $90 (33-42% SMI), $150 (43-49% SMI). Waived (set to $0) for TANF-NEON referrals (is_tanf_enrolled), CPS/foster placements (is_in_foster_care / receives_or_needs_protective_services), and homeless households (is_homeless).
  • Per-child reimbursement is summed over eligible children in care, the family copay is subtracted once at the family level, and the result is floored at 0.

Requirements Coverage

20 of 20 in-scope requirements are covered.

REQ Description Parameter Variable Test
001 Child under age 13 eligibility/child_age_limit.yaml nv_ccdp_eligible_child eligibility/nv_ccdp_eligible_child.yaml
002 Special-needs child under age 19 eligibility/special_needs_child_age_limit.yaml nv_ccdp_eligible_child eligibility/nv_ccdp_eligible_child.yaml
004 Two-tier SMI (41% intake / 49% renewal) income/smi_intake.yaml, income/smi_renewal.yaml nv_ccdp_income_eligible, nv_ccdp_copay eligibility/nv_ccdp_income_eligible.yaml, copay/nv_ccdp_copay.yaml
006 SMI accessor, Oct-1 instant nv_ccdp_smi nv_ccdp_smi.yaml
007 $1M asset limit (federal reuse) gov.hhs.ccdf.asset_limit nv_ccdp_eligible (is_ccdf_asset_eligible) eligibility/nv_ccdp_eligible.yaml, integration.yaml
008 Nevada residency defined_for = StateCode.NV integration.yaml
009 Child immigration (federal reuse) nv_ccdp_eligible_child (is_ccdf_immigration_eligible_child) eligibility/nv_ccdp_eligible_child.yaml
010 Caretakers in approved Purpose of Care nv_ccdp_activity_eligible eligibility/nv_ccdp_activity_eligible.yaml
011 POC categories 410-470 nv_ccdp_activity_eligible eligibility/nv_ccdp_activity_eligible.yaml
013 min(charge, max rate) − copay nv_ccdp nv_ccdp.yaml, integration.yaml
014 Per-day → monthly conversion billing/monthly_billed_days.yaml nv_ccdp nv_ccdp.yaml, integration.yaml
015 Per-day base-rate table (region × type × age) rates/center.yaml, rates/fcc.yaml nv_ccdp_provider_rate nv_ccdp_provider_rate.yaml
016 Region from county nv_ccdp_region nv_ccdp_region.yaml
017 Age group from age via months scale age_group/months.yaml nv_ccdp_age_group nv_ccdp_age_group.yaml
018 Flat copay $0 / $90 / $150 copay/amount.yaml nv_ccdp_copay copay/nv_ccdp_copay.yaml
019 Copay waiver (TANF-NEON / foster / homeless) nv_ccdp_copay copay/nv_ccdp_copay.yaml
020 Countable income = gross − deductions income/countable_income/sources.yaml nv_ccdp_countable_income income/nv_ccdp_countable_income.yaml
022 Court-ordered child support paid deduction nv_ccdp_countable_income (child_support_expense) income/nv_ccdp_countable_income.yaml
023 No parent-citizenship income exclusion covered by REQ-009 (child-only immigration check) eligibility/nv_ccdp_eligible_child.yaml

(Supporting input enum nv_ccdp_provider_type and the nv_ccdp_enrolled input boolean each have their own test.)

Not Modeled

What Source Why
85% SMI mid-certification hard-exit protection (REQ-005) CCDF State Plan; 45 CFR 98.21(a)(1)(ii) We don't track certification periods at the moment, so the mid-period protection is not simulatable; the operative enrolled ceiling modeled is 49% SMI.
Average Cost of Care deduction (REQ-021) Manual MS 302.1 Deferred per scope decision — narrow child-only Kinship-Care / child-only-TANF / SSI-children population we don't track at the moment.
Mid-certification continuity past age 13/19 (REQ-003) Manual MS 210/211 No certification-period tracking at the moment.
Activity-hour verification and overlapping-schedule computation (REQ-012, REQ-026) Manual MS 400 series We don't track activity-hour verification or per-parent schedules at the moment (administrative).
12-month certification period / continuity windows (REQ-024) Manual; federal CCDF We don't track certification time windows at the moment.
Job-search 90-day/year limit + POC funding availability (REQ-025) Manual MS 430 We don't track per-category funding availability or job-search day counts at the moment.
Part-day / fractional-day rate adjustments and per-child fee ordering (REQ-028) No Nevada part-day rule located; not modeled.
Per-child copay waivers (REQ-029) Manual MS 163 Waiver applied at the whole-family level instead.

Microsimulation note

nv_ccdp returns $0 in microsimulation because meets_ccdf_activity_test is an unpopulated input flag in the CPS microdata (false for every unit), so nv_ccdp_activity_eligible is false everywhere. This is the same data-input artifact that affects sibling CCDF state programs (e.g. wv_child_care_subsidies is also $0 in microsim for the same reason). It is a known microdata input gap, not a formula bug. The full benefit pipeline — both regions, both provider types, all four age groups, all three copay tiers, both enrollment states, and the copay-waiver path — is verified through the unit and integration tests, which set meets_ccdf_activity_test: true (or is_homeless: true) and produce the expected non-zero benefits.

Verification TODO

  • Confirm the per-day provider rates against an operational rate sheet (The Children's Cabinet / Las Vegas Urban League), as distinct from the CCDF State Plan base-rate table and the 2022 Market Rate Survey.
  • Confirm the age-band month cutoffs (25 / 37 / 60-month boundaries, currently following the sibling CCAP convention) and the daily→monthly billing convention (21.67-day full-time-month proxy — Nevada does not publish an explicit conversion).
  • Confirm the CC PT 06-25 effective-date label (Oct 1, 2025) against the 2024-10-01 parameter effective dates (the flat-copay structure took effect Oct 1, 2024).
  • Confirm the 32.99% vs. 33% SMI copay boundary and the full MS 306 counted/excluded income source list.
  • CI passes.

Test plan

  • 101 unit + integration tests pass locally (policyengine-core test policyengine_us/tests/policy/baseline/gov/states/nv/dwss/ccdp/ -c policyengine_us -v).
  • CI passes.

Files Added

policyengine_us/parameters/gov/states/nv/dwss/ccdp/
  age_group/months.yaml
  billing/monthly_billed_days.yaml
  copay/amount.yaml
  eligibility/child_age_limit.yaml
  eligibility/special_needs_child_age_limit.yaml
  income/smi_intake.yaml
  income/smi_renewal.yaml
  income/countable_income/sources.yaml
  rates/center.yaml
  rates/fcc.yaml

policyengine_us/variables/gov/states/nv/dwss/ccdp/
  nv_ccdp.py
  nv_child_care_subsidies.py
  nv_ccdp_age_group.py
  nv_ccdp_enrolled.py
  nv_ccdp_provider_rate.py
  nv_ccdp_provider_type.py
  nv_ccdp_region.py
  nv_ccdp_smi.py
  copay/nv_ccdp_copay.py
  eligibility/nv_ccdp_activity_eligible.py
  eligibility/nv_ccdp_eligible.py
  eligibility/nv_ccdp_eligible_child.py
  eligibility/nv_ccdp_income_eligible.py
  income/nv_ccdp_countable_income.py

policyengine_us/tests/policy/baseline/gov/states/nv/dwss/ccdp/
  integration.yaml
  nv_ccdp.yaml
  nv_child_care_subsidies.yaml
  nv_ccdp_age_group.yaml
  nv_ccdp_enrolled.yaml
  nv_ccdp_provider_rate.yaml
  nv_ccdp_provider_type.yaml
  nv_ccdp_region.yaml
  nv_ccdp_smi.yaml
  copay/nv_ccdp_copay.yaml
  eligibility/nv_ccdp_activity_eligible.yaml
  eligibility/nv_ccdp_eligible.yaml
  eligibility/nv_ccdp_eligible_child.yaml
  eligibility/nv_ccdp_income_eligible.yaml
  income/nv_ccdp_countable_income.yaml

changelog.d/nv-ccap.added.md

Registry edits (2):

  • policyengine_us/parameters/gov/hhs/ccdf/child_care_subsidy_programs.yaml — added nv_child_care_subsidies to the federal child_care_subsidies aggregator.
  • policyengine_us/programs.yaml — added the NV CCDP state_implementations entry under the CCDF federal program.

hua7450 and others added 3 commits June 17, 2026 10:53
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…yEngine#8664)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 changed the title Add Nevada Child Care Assistance Program (CCAP) Add Nevada Child Care and Development Program (CCDP) Jun 17, 2026
@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (fbace93) to head (b6dfb06).
⚠️ Report is 24 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #8665    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            1        14    +13     
  Lines           23       216   +193     
  Branches         0         1     +1     
==========================================
+ Hits            23       216   +193     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 2 commits June 17, 2026 12:46
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ource URLs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Nevada Child Care Assistance Program (CCAP)

1 participant